package com.wang.jmonkey.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wang.jmonkey.modules.system.model.dto.SystemModuleResourceDto;
import com.wang.jmonkey.modules.system.model.dto.SystemResourceTreeDto;
import com.wang.jmonkey.modules.system.model.entity.SystemResourceEntity;
import com.wang.jmonkey.modules.system.model.enums.SystemResourceTypeEnum;

import java.util.List;

/**
 * 系统资源信息表(SystemResource)表服务接口
 *
 * @author HeJiawang
 * @since 2021-05-21 21:45:37
 */
public interface SystemResourceService extends IService<SystemResourceEntity> {

    /**
     * <li>删除资源信息</li>
     * <li>删除子集资源信息</li>
     * <li>删除资源权限信息</li>
     * @param type 资源类型
     * @param resourceId 资源id
     * @return true 删除成功
     */
    boolean removeByResourceId(SystemResourceTypeEnum type, Long resourceId);

    /**
     * 修改资源的上级资源id
     * @param resource 资源信息
     * @return true 修改成功
     */
    boolean updateParentId(SystemResourceEntity resource);

    /**
     * 获取资源树
     * @param type 系统资源类型
     * @return 资源树信息
     */
    List<SystemResourceTreeDto> tree(SystemResourceTypeEnum type);

    /**
     * 获取用户有权限的资源信息
     * @param userId 用户id
     * @return 资源信息
     */
    List<SystemModuleResourceDto> list(Long userId);
}
